home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 23 / CU Amiga - Super CD-ROM 23 (June 1998).iso / CreatingGames / Utilities / Misc / ModemLink / Source / Link.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-10-22  |  2.9 KB  |  132 lines

  1. /*
  2. ** NAME: Link.h
  3. */
  4.  
  5. #ifndef LINK_H
  6. #define LINK_H
  7.  
  8. #include <exec/types.h>
  9. #include <exec/io.h>
  10. #include <devices/serial.h>
  11. #include <devices/timer.h>
  12. #include <utility/tagitem.h>
  13.  
  14. #include <string.h>
  15.  
  16. // PRIVATE:
  17.  
  18. /*
  19. ** Flags for the IO struct.  Assume these are all private flags, so don't
  20. ** touch, unless otherwise stated.
  21. */
  22. #define ML_PIPE0    0x0001L   // Queued for LinkProc
  23. #define ML_PIPE1    0x0002L   // LinkProc has removed it from Queue but no processing yet
  24. #define ML_PIPE2    0x0003L   // Currently processing request
  25.  
  26. /*
  27. ** prototypes
  28. */
  29.  
  30. struct IOExtLink *ML_GetMsg(struct MsgPort *MPort, ULONG PipeBit);
  31. void ML_ReplyMsg(struct IOExtLink *LinkReq);
  32.  
  33. // PUBLIC:
  34.  
  35. /*
  36. ** Error codes that could be returned.  It's a good idea to check the
  37. ** error field of the IO struct after the WaitIO() call to check to see
  38. ** if everything went okay.
  39. */
  40. #define LinkErr_OK       0x0000    // everything went fine
  41. #define LinkErr_NOPROC   0x0001    // The ML handler process is not running! -- bad!
  42.  
  43. /*
  44. ** Return codes for the ML_Establish routine.  Make sure you always check
  45. ** the result code of this function!!!
  46. */
  47. #define EstErr_OK        0x0000    // Connected!  Everything A-OKAY
  48. #define EstErr_TIMEOUT   0x0001    // Could not connect, ran out of time...
  49. #define EstErr_TASK_ERR  0x0002    // ML Task already exists.  Can only have one!
  50.  
  51.  
  52. /*
  53. ** structures
  54. */
  55.  
  56. struct IOExtLink {
  57.   struct IOStdReq IOLink;
  58.   UBYTE LinkPortName[10];           // Read only - port to send IO reqs to
  59.   UBYTE LinkProcName[10];           // Read only - proc which handles IO reqs
  60.   ULONG Flags;                     // Check flag defs for modification perms.
  61.   ULONG Unit;                      // Private (may change)
  62. };
  63.  
  64. struct LinkPkt {
  65.   struct MinNode ml_Node;          // for linked lists
  66.   ULONG Length;                    // size of Data block
  67.   ULONG CRC;                       // contains CRC32 code (internal use)
  68.   UBYTE Socket;                    // not used - set to zero
  69.   UBYTE *Data;                     // points to data block
  70.   int Flags;                       // no flags yet - set to zero
  71.   UBYTE *UserData;                 // points to user defined data
  72. };
  73.  
  74.  
  75. /*
  76. ** prototypes
  77. */
  78. ULONG __asm
  79. ML_EstablishTagList
  80. (
  81.   register __a0 struct IOExtLink *LinkIO,
  82.   register __a1 struct IOExtSer *SerIO,
  83.   register __a2 struct TagItem *tagList
  84. );
  85.  
  86. void __asm
  87. ML_Terminate
  88. (
  89.   register __a0 struct IOExtLink *LinkIO
  90. );
  91.  
  92. struct LinkPkt  __asm
  93. *ML_AllocPkt(void);
  94.  
  95. void  __asm
  96. ML_FreePkt
  97. (
  98.   register __a0 struct LinkPkt *Pkt
  99. );
  100.  
  101. void __asm
  102. ML_FreePktList
  103. (
  104.   register __a0 struct MinList *PktList
  105. );
  106.  
  107.  
  108. ULONG __asm
  109. ML_PacketizeData
  110. (
  111.   register __a0 struct MinList *PktList,
  112.   register __a1 UBYTE *Data,
  113.   register __d0 ULONG Length,
  114.   register __d1 ULONG PktSize
  115. );
  116.  
  117. ULONG __asm
  118. ML_DePacketizeData
  119. (
  120.   register __a0 struct MinList *PktList,
  121.   register __a1 UBYTE *Data,
  122.   register __d0 ULONG Length
  123. );
  124.  
  125. ULONG __asm
  126. ML_PacketDataSize
  127. (
  128.   register __a0 struct MinList *PktList
  129. );
  130.  
  131. #endif
  132.